"""
stu_manager.py  学员管理模块，用于对于学院对象进行增删改查之类的操作
模块中定义类StudentManager
类中的行数包括:内置和自定义的行数
  内置函数:__init__()\__str__()
  自定义函数:根据具体需求、增删改查等功能
"""
from student_manager_object.student import Student


class StudentManager:
    def __init__(self):
        #学员对象保存在列表中
        self.stu_list=[]

    #自定义函数,程序入口函数
    """
            循环操作：
              显示功能界面
              用户输入
              根据用户输入，进入不同的功能
            
            """
    def run(self):

        while True:
            #调用显示功能界面菜单函数
            self.menu()
            num=input('请输入您需要的功能编号:')
            if num=='1':
                self.add_stu()
            elif num=='2':
                self.del_stu()
            elif num=='3':
                self.modify_stu()
            elif num=='4':
                self.search_stu()
            elif num=='5':
                self.show()
            elif num=='6':
                #将学员信息保存到文件
                self.save_stu()
            elif num=='7':
                break
            else:
                print('输入有误!')
    def menu(self):
        print('-'*20)
        print('请选择功能菜单:')
        print('1:添加学员')
        print('2:删除学员')
        print('3:修改学员')
        print('4:搜索学员')
        print('5:显示所有学员')
        print('6:保存学员信息')
        print('7:退出系统')
        print('-' * 20)


    def add_stu(self):
        #先将信息封装到对象中,然后添加到列表里
        print('----------添加功能----------')
        name=input('请输入学员姓名')
        gender=input('请输入学员性别')
        tel=input('请输入学员电话:')
        stu=Student(name,gender,tel)
        self.stu_list.append(stu)
        print('添加成功')




    def del_stu(self):
        print('----------删除功能----------')
        name=input('请输入要删除的学员姓名')
        for i in self.stu_list:
            if i.name==name:
                self.stu_list.remove(i)
                print('删除成功')
                break
    def modify_stu(self):
        print('----------修改功能----------')
        name = input('请输入要修改的学员姓名')


    def search_stu(self):
        pass

    def show(self):
        pass

    def save_stu(self):
        with open('data.txt','w') as f:
            #学员信息保存在列表中，列表中每个元素都是一个学员对象
            #直接取出列表元素是学员对象的内存地址
            new_list=[e.__dict__ for e in self.stu_list]
            f.write(str(new_list))
